package cn.two.controller;

import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import cn.two.model.OaApplyreim;
import cn.two.model.OaDept;
import cn.two.model.OaReim;
import cn.two.model.OaSubmit;
import cn.two.model.OaUser;
import cn.two.service.applyreimService;

@Controller
@RequestMapping("/applyreim")
public class applyreimController {

	@Resource
	private applyreimService applyreimService;
	
	/**
	 * 提交申请
	 * @param model
	 * @param request
	 * @param mf
	 * @return
	 */
	@RequestMapping("/applyreimuploadApplyReim")
	public String uploadApplyReim(Model model,HttpServletRequest request,@RequestParam("pic")MultipartFile mf){
		
		try {
			//上传图片
			FileUtils.copyInputStreamToFile(mf.getInputStream(), new File("D:/eclipse/eclipse/workSpace/oa/src/main/webapp/images/"+mf.getOriginalFilename()));
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		OaApplyreim oaApplyreim=new OaApplyreim();
		//获取用户id
		OaUser oaUser=new OaUser();
		int user_id=Integer.parseInt(request.getParameter("user_id"));
		oaUser.setUserId(user_id);
		//获取报销用途id
		OaReim oaReim=new OaReim();
		int reim_id=Integer.parseInt(request.getParameter("reim"));
		oaReim.setReimId(reim_id);
		//获取部门id
		OaDept oaDept=new OaDept();
		int dept_id=Integer.parseInt(request.getParameter("dept"));
		oaDept.setDeptId(dept_id);
		//获取是否完成表id
		OaSubmit oaSubmit=new OaSubmit();
		oaSubmit.setSubmitId(1);
		
		
		
		String applyreimDate=request.getParameter("date");
		String applyreimTitle=request.getParameter("title");
		String applyreimContext=request.getParameter("context");
		String applyreimPic=mf.getOriginalFilename();
		
		String applyMoney=request.getParameter("money");
		Double applyreimMoney=Double.parseDouble(applyMoney);
		
		String applyreimSta=request.getParameter("Sta");
		
		
		
		oaApplyreim.setOaUser(oaUser);
		oaApplyreim.setOaDept(oaDept);
		oaApplyreim.setOaReim(oaReim);
		oaApplyreim.setOaSubmit(oaSubmit);
		oaApplyreim.setApplyreimDate(applyreimDate);
		oaApplyreim.setApplyreimTitle(applyreimTitle);
		oaApplyreim.setApplyreimContext(applyreimContext);
		oaApplyreim.setApplyreimPic(applyreimPic);
		oaApplyreim.setApplyreimMoney(applyreimMoney);
		oaApplyreim.setApplyreimSta(applyreimSta);
		
		
		applyreimService.uploadApplyReim(oaApplyreim);
		
		
		return "checkApplyReim";	
	}
	/**
	 * 查询申请
	 * 1.普通用户只能查询自己的申请
	 * 2.经理只能查询自己当前部门下所有人的申请
	 * @param session
	 * @param model
	 * @return
	 */
	@RequestMapping("/checkAllApplyReim")
	public String checkAllApplyReim(HttpSession session,Model model){
		
		OaUser oaUser=(OaUser) session.getAttribute("OaUser");
		
		List<OaApplyreim> list=applyreimService.checkAllApplyReim(oaUser);
		
		model.addAttribute("list",list);
		
		return "applyreim";
		
	}
	/**
	 * 删除申请
	 * 1.普通用户只能删除自己的申请（只能是保存状态的申请）
	 * @param id
	 * @param response
	 * @return
	 * @throws IOException
	 */
	@RequestMapping("/checkByIdApplyReim{id}")
	public String checkById(@PathVariable int id){
		
		OaApplyreim oaApplyreim=new OaApplyreim();
		oaApplyreim.setApplyreimId(id);
		
		OaApplyreim applyreim=applyreimService.checkById(oaApplyreim);
		
		if(applyreim.getApplyreimSta().equals("保存")){

			applyreimService.deleteApplyReim(applyreim);
			
			return "redirect:checkAllApplyReim";
		}else{
			return "redirect:checkAllApplyReim";
		}
	
	}
	/**
	 * 根据申请表Id查询
	 * @param oaApplyreim
	 * @return
	 */
	@RequestMapping("/upDateApplyReim{id}")
	public String upDateApplyReim(@PathVariable int id,HttpSession session){
		
		OaApplyreim oaApplyreim=new OaApplyreim();
		
		oaApplyreim.setApplyreimId(id);
		
		OaApplyreim applyreim=applyreimService.checkById(oaApplyreim);
		
		session.setAttribute("applyreim", applyreim);
		
		return "datils";
		
	}
	/**
	 * 修改申请
	 * 1.只能修改保存状态的申请表
	 * 2.用户只能修改自己的申请表
	 * @param oaApplyreim
	 * @return
	 */
	@RequestMapping("/updateApplyreimById")
	public String updateApplyreimById(HttpServletRequest request,@RequestParam("pic")MultipartFile mf){
		try {
			//上传图片
			FileUtils.copyInputStreamToFile(mf.getInputStream(), new File("D:/eclipse/eclipse/workSpace/oa/src/main/webapp/images/"+mf.getOriginalFilename()));
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		OaApplyreim oaApplyreim=new OaApplyreim();
		//获取用户id
		OaUser oaUser=new OaUser();
		int user_id=Integer.parseInt(request.getParameter("user_id"));
		oaUser.setUserId(user_id);
		//获取报销用途id
		OaReim oaReim=new OaReim();
		int reim_id=Integer.parseInt(request.getParameter("reim"));
		oaReim.setReimId(reim_id);
		//获取部门id
		OaDept oaDept=new OaDept();
		int dept_id=Integer.parseInt(request.getParameter("dept"));
		oaDept.setDeptId(dept_id);
		//获取是否完成表id
		OaSubmit oaSubmit=new OaSubmit();
		
		oaSubmit.setSubmitId(1);
		
		
		int applyreimId=Integer.parseInt(request.getParameter("applyreimId"));
		String applyreimDate=request.getParameter("date");
		String applyreimTitle=request.getParameter("title");
		String applyreimContext=request.getParameter("context");
		
		String applyreimPic;
		applyreimPic=mf.getOriginalFilename();
		
		if(applyreimPic.equals("")){
			applyreimPic=request.getParameter("picname");	
		}
		
		String applyMoney=request.getParameter("money");
		Double applyreimMoney=Double.parseDouble(applyMoney);
		
		String applyreimSta=request.getParameter("Sta");
		
		
		
		oaApplyreim.setOaUser(oaUser);
		oaApplyreim.setOaDept(oaDept);
		oaApplyreim.setOaReim(oaReim);
		oaApplyreim.setOaSubmit(oaSubmit);
		oaApplyreim.setApplyreimId(applyreimId);
		oaApplyreim.setApplyreimDate(applyreimDate);
		oaApplyreim.setApplyreimTitle(applyreimTitle);
		oaApplyreim.setApplyreimContext(applyreimContext);
		oaApplyreim.setApplyreimPic(applyreimPic);
		oaApplyreim.setApplyreimMoney(applyreimMoney);
		oaApplyreim.setApplyreimSta(applyreimSta);
		
		
		applyreimService.updateApplyreim(oaApplyreim);
		
		
		return "redirect:checkAllApplyReim";
		
		
	}
	
	
	
	
	
}
